// pages/person/person.js
import request from '../../utils/request'
// 定义一个全局变量 来存储移动距离
let startY = 0
Page({
  // 1. 手指触摸屏幕了
  startHandler(event) {
    this.setData({
      convertTransition: ''
    })
    startY = event.touches[0].clientY
  },
  // 2. 手指开始滑动了
  moveHandler(event) {
    let distanceY = event.touches[0].clientY - startY
    if (distanceY < 0) return distanceY = 0
    if (distanceY > 80) distanceY = 80
    // 将distanceY更新回data 页面中要使用
    this.setData({
      // distanceY
      covertTransform: `translateY(${distanceY}rpx)`
    })
  },
  // 3. 手指结束触摸 也就是手指抬起来了
  endHandler(event) {
    this.setData({
      covertTransform: 'translateY(0)',
      convertTransition: 'transform 0.7s linear'
    })
  },
  // 4. 跳转到login页面
  toLoginPage() {
    const userInfo = wx.getStorageSync('userInfo')
    if (userInfo) return
    wx.navigateTo({
      url: '/pages/login/login',
    })
  },
  // 5. 获取最近播放记录
  async getRecordList() {
    const {
      userId: uid
    } = this.data.userInfo
    const result = await request({
      url: '/user/record',
      data: {
        uid,
        type: 1
      }
    })
    const recordList = [] //储存播放记录
    if (result.code === 200) {
      result.weekData.forEach(item => {
        const songObj = {
          id: item.song.id,
          songName: item.song.name,
          picUrl: item.song.al.picUrl
        }
        recordList.push(songObj)
      })
    }
    this.setData({
      recordList
    })
  },

  /**
   * 页面的初始数据
   */
  data: {
    distanceY: 0,
    covertTransform: '',
    convertTransition: '',
    userInfo: {},
    recordList: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const userInfo = wx.getStorageSync('userInfo')
    if (userInfo) {
      this.setData({
        // 反序列化-就是将json格式的字符串解析成真正的对象或数组
        userInfo: JSON.parse(userInfo)
      })
      // 登陆成功后跳转到这个个人中心页面之后才去获取最近播放记录
      this.getRecordList()
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})